The present invention relates to process management systems. It finds particular application in the provision of services over a communications network, with particular reference to feature interaction.
There are many processes which are complex and which can be carried out in more than one way. Embodiments of the present invention are intended to select and configure the steps in a process.
An example of a complex process, which can be controlled by a management system according to an embodiment of the present invention, is that of service provision over one or more communications networks. Recently, the services available to users over communications networks have grown much more sophisticated. For instance, in the UK, it is now possible to subscribe to call waiting and answering services, provided over the public switched telecommunications network (PSTN). It is expected that modernisation of existing networks, and the provision of new networks, will lead to a proliferation of new services.
Increasingly in the future, different types of services are likely to be offered over communications networks. For instance the increasing capability of technology is enabling a future where a wide variety of multimedia services can be delivered to users over communications networks. These services could include simple voice telephony, multimedia conference amongst many users, home shopping and video on demand. Additionally users may want such services to be delivered over a variety of terminal types such as a portable phone, portable personal computer and domestic television set with a set-top-box.
These services come not only from development of the telecommunications environment, including telephony and cable television, but also from environments previously separate, such as the computing environment. For instance, there has been major growth of computer network services, such as those available on the Internet. Collectively all these services are referred to herein as information services.
Although to date (at least in the telephony world) the communication network operator and the service provider (SP) have generally coincided, this is not essential. Another trend expected in the future is that, increasingly, the service provider will be separate from the network operator. As in the case of Internet, several SPs (vendors) may offer their services (products) over a common network. Indeed, there may be further complexity involved in that the xe2x80x9ccommon networkxe2x80x9d might in fact comprise multiple networks connected together, managed by many different network providers.
Communications services are based on functionality provided by the network(s) carrying the services. In the telecommunications arena, recent developments mean that this could be provided increasingly by intelligence, ie decision-making software, in an intelligent network architecture. With the convergence of computing and telecommunications technology, however, functionality may in practice be provided in other ways.
Regardless of how functionality will be provided, there has emerged a problem of xe2x80x9cfeature interactionxe2x80x9d. This arises for instance when features which would normally be triggered in provision of one service, conflict with features normally triggered in provision of another service and the two services are called on at the same time. A simple example of feature interaction is the conflict between xe2x80x9cCall Forwardingxe2x80x9d and xe2x80x9cCall Waitingxe2x80x9d. Clearly a call cannot be both forwarded and kept waiting.
As services grow more diverse, feature interaction has been found to be a very complex problem. It is considered one of the fundamental obstacles to rapid development and deployment of new services. As the number of new features grows, the time required to introduce them grows.
In attempting to solve the feature interaction problem, a strategy has been to classify the solutions into avoidance, detection and resolution. Avoidance looks at ways to prevent undesired feature interactions. Detection assumes that feature interactions will be present, and determines methods for identifying and locating them. Resolution assumes that feature interactions will be present and detected, and looks at mechanisms for minimising their potential adverse effects. It is not practical to assume that the solution can be provided by just one approach. Feature interactions found before deployment can be avoided. In contrast, feature interactions detected during run-time must be resolved at run-time. One advantage of run-time interaction resolution is that the problem space is reduced, since only information specific to each occurrence of an interaction need be considered.
Current approaches to run-time resolution include event based resolution and negotiating software agents. Event based resolution is based on an approach of collecting events during the basic call process which trigger the activation of features. In this way, the feature manager can control which features should be invoked. These approaches can resolve issues such as signal ambiguities and incompatible combinations of call-processing activities. An alternative approach is to use negotiating software agents proposed by Griffeths and Velthuijsen in xe2x80x9cThe Negotiating Agents Approach to Runtime Feature Interaction Resolutionxe2x80x9d, published in 1994 by IOS Press. This approach uses agents to represent users, network providers, and terminals, collectively called entities. Users define policies which describe how each feature should behave. These policies constrain the set of operations that each user or provider is willing to perform in initiating or modifying a call. A negotiation mechanism is used to resolve conflicts between the policies of different users, thus maintaining autonomy amongst the users.
International patent application WO-A-94/27411 describes a method of resolving conflicts among entities in a distributed system wherein a negotiating software agent represents each entity, the method being based upon generation of proposals and counter-proposals on the nature of a communication session to be established between those entities, selected by the agents from a goal hierarchy. A single goal hierarchy is used by all the agents involved in establishing the session although different agents may mark a particular node within the hierarchy acceptable or unacceptable. On receiving an unacceptable proposal an agent may derive, from the goal hierarchy, the overriding goal of the user initiating the proposal and hence select a counter-proposal from within the same hierarchy.
In this description the term xe2x80x9cagentxe2x80x9d relates to a function or process which operates in a computing environment and which can act autonomously to receive a request for an operation and provide a result. An agent normally has an up-datable data store for holding data relevant to local conditions, and usually also for holding some global information about the disturbed environment in which it sits. Agents operate autonomously, having decision-making functionality (intelligence) allowing them to negotiate and output a result in response to an incoming message. The result may be for instance a control signal to an apparatus. In the communications environment, the control signal may cause a connection to be made according to a particular configuration.
Typically, an agent is embodied as a piece of software, for example written in the C programming language, running on a suitable computing platform, for example a UNIX (Trademark) based platform. Requests and results are passed between an agent and a requesting entity, which might be another agent, across a suitable communications network, for example a TCP/IP-based local area network, to which the computing platform is interfaced. In some embodiments, plural agents can reside on a common computing platform and, conversely, a single agent can be realised across plural computing platforms in the environment. Also, the computing environment might be heterogeneous, and support various different types of computing platforms.
According to a first aspect of the present invention, there is provided a method of processing data in data processing means, so as to generate an output signal in response to at least one input signal, wherein the input signal comprises at least one data element, which method comprises:
i) storing a set of data elements;
ii) allocating to each stored data element a weighting factor;
iii) receiving said input signal;
iv) for each data element of the input signal, searching for that data element in the stored set of data elements;
v) for each data element of the input signal which is found by the search in the stored set of data elements, reviewing the weighting factor allocated to that data element; and
vi) generating an output signal determined by the reviewed weighting factors.
Preferably, there are provided at least first and second data processing means, wherein the input signal is received by the first data processing means from the second data processing means and the output signal is sent by the first data processing means to the second data processing means, said output signal comprising a response selected from:
a) acceptance;
b) rejection; and
c) a signal comprising at least one data element.
In embodiments of the present invention, the data processing means for a first entity and a second entity can make proposals and counter proposals to each other over the way in which a process is to be carried out. Each data processing means looks at its own preferences, the xe2x80x9cweighting factorsxe2x80x9d, for the elements of the proposal incoming from the other data processing means. If it can put forward a counter proposal which is more acceptable to it in the light of its own preferences, it will do so and wait for the other data processing means to review the counter proposal in its turn, against its own preferences.
Clearly, there will be circumstances where a data processing means accepts a proposal even though it can put forward a better proposal from its point of view. For instance, this will happen if it has already had the xe2x80x9cbetterxe2x80x9d proposal rejected, or if the negotiation process has become too protracted.
Processes other than communications service configuration which might benefit from an embodiment of the present invention would include for instance establishing parameters such as costs and timing for electronic trading and transfer of funds, establishing access and download of data, and information filtering.
Embodiments of the present invention are particularly useful when directed to identifying and resolving feature interactions in communications service provision at runtime.
According to a second aspect of the present invention, there is provided a method of establishing a connection over a communications network, for service provision between first and second users of the network, there being provided respective connection setup means for said users, which method comprises:
i) storing for each of said users data defining at least one connection configuration;
ii) storing in respect of data defining a connection configuration for the second user, data defining at least one alternative connection configuration; and
iii) storing in respect of said data defining a connection configuration for the second user, and in respect of the data defining the or each of its alternative connection configuration(s), a respective priority indicator;
the method further comprising a negotiation process for the establishment of a connection by means of:
iv) transmitting data defining a proposed connection configuration from the connection setup means for the first user to the connection set up means for the second user;
v) reviewing the data defining the proposed configuration at the connection setup means for the second user by accessing the data defining configurations and the respective priority indicators stored in respect of the second user; and
vi) selecting and transmitting a response to the connection setup means for the first user, the response being determined at least in part by the result of the review step v) above, and selected from acceptance or rejection of the proposed connection configuration, or comprising data defining a counter-proposed connection configuration.
According to a third aspect of the present invention, there is provided apparatus for use in establishing communications connections by means of a communications network, the apparatus comprising:
i) first and second network access points;
ii) at least one data store for storing user profiles, each user profile comprising a set of connection configurations associated with a respective user, and for storing priority indicators in relation to at least two of said connection configurations; and
iii) first and second connection set up means for use in establishing connections between said access points,
wherein said first and second connection set up means are each provided with a negotiation protocol, access to at least one user profile in the data store, and means to review said priority indicators for that user profile, such that a communication connection can be set up between the access points, on behalf of at least two users, by negotiation between the first and second connection set up means, based on the respective user profiles and the related priority indicators.
It will be seen that embodiments of the present invention allow feature interactions to be circumvented at run-time for a communications service by means of a user being able to preselect to abandon a service aspect in response to a potential compromise proposal from another user by building in an order of preference for service aspects.
Significant aspects of preferred embodiments of the present invention for use in communications service provision are:
the introduction of scheduling so that an otherwise failed connection can be reattempted
the provision of a preference order for connection configurations
a negotiation strategy which can be varied both in general terms and specifically for each user
the facility to send multiple connection configurations between users, and the negotiation protocol offered
the representation of features as high level goals,
how these high level goals are mapped into a user configuration, and
the way in which agents, acting on behalf of the users involved in any given connection, negotiate in the connection setup process.
Although embodiments of the invention are clearly very useful in communications service provision, as described above, they can also have application in a wide range of process environments. Wherever there is a choice in the way elements of a process might be carried out, and wherever there are different entities involved in the carrying out of the process, which entities may have different preferences, then an embodiment of the present invention may be appropriate.
For the purposes of this patent specification, we will define the following terms:
Feature
A feature is a tariffable unit, e.g. Call Waiting. There can be two types of feature. A technology feature is an individual operation that the platform performs. A policy feature on the other hand, is a constraint on the set of operations that a user or provider is willing to perform in initiating or modifying a call. Embodiments of the present invention relate to this second type of feature.
Service
A service is a collection of features. A feature modifies one or more aspects of a service, while using the remaining functionality provided. An example of a service is that currently offered by the present applicant in the UK: xe2x80x9cNetwork Servicesxe2x80x9d. This comprises the features xe2x80x9cCall Waitingxe2x80x9d, xe2x80x9cCall Diversionxe2x80x9d, xe2x80x9c3 Way Callingxe2x80x9d and others.
Feature Interaction
A feature interaction occurs when the behaviour of one feature affects the behaviour of another feature.
It should be noted that although the word xe2x80x9ccallxe2x80x9d is used throughout this specification, embodiments of the present invention should not be taken to be limited to voice or speech transmission. The principles of the invention will clearly also be relevant to other transmissions, for instance potentially involving data or information transmission.
It is recognised that computing infrastructures in telecommunications can become extremely complex and this could potentially limit manageability, extendibility, scalability and robustness. The approach exploited in embodiments of the present invention, which provides simplicity in the infrastructure, is that of intelligent agent technology, the basis of which is described in xe2x80x9cDistributed Artificial Intelligencexe2x80x9d, ed. Huhns M. N., Pitman, London 1987. An intelligent agent in this context can be broadly described as a software based entity which acts on behalf of another entity. It might comprise updatable data, which might only be locally relevant, and usually some sort of negotiating or decision-making functionality. A community of agents can then perform negotiation tasks amongst themselves to decide a way forward on behalf of multiple entities in a distributed system.
Software clearly provides the basis of the infrastructures needed in service provision systems according to embodiments of the present invention to implement scalable and deployable solutions. Different types of software technology might be employed, and there are several functional design approaches which could be used. However, a common approach to the design and implementation of software systems in this technical environment uses object oriented software technology. This is known and used by international standards bodies (e.g. Open Software Foundation Object Management Group (OSF OMG), Open Systems Interconnection (OSI)). Reference might be made for example to xe2x80x9cObject Management Architecture Guidexe2x80x9d, Revision 2.0, Second Edition, Sep. 1, 1992. OMG reference: OMG TC Document 92.11.1.
In general terms, xe2x80x9cobjectsxe2x80x9d in this context comprise units of software which represent entities or concepts of the real world by means of a combination of data and functionality. Data is encapsulated as internal attributes of an object and the associated functionality is encapsulated as methods which use or operate upon the attributes. Although an object may receive a message from another object requesting it to perform a method on its attributes which may result in the return of data, the attributes themselves are not directly accessible by external objects. Such high degrees of encapsulation have not been readily available in earlier software technologies.
Embodiments of the present invention are advantageously based on object-oriented technology.
From the perspective of the enterprises involved in satisfying the overall requirements of users in the future, there are likely to be significant challenges involved in designing a suitable infrastructure. A potential starting point would clearly be provision of an architecture (from high-level design to low-level implementation) that can technically and economically support services of the future. Software and hardware resources of the computing infra-structure would be enabling components of the service architecture. An aspect of the computing infrastructure is the processing environment and a known environment of suitable type for use in embodiments of the present invention is the distributed processing environment (DPE) which allows multiple processes to be run using multiple computer xe2x80x9cnodesxe2x80x9d. The DPE maintains a view of the multiple nodes and processes and handles message passing between nodes and objects, providing a common language for the exporting of interfaces for different objects residing on different nodes. That is, it assists with aspects of the software and hardware location transparency and facilitates the provision of scalable and deployable solutions. Standards for DPE already exist and are being extended.
A node in this context might conveniently be provided by a computer with processors and memory which is capable of running an operating system, compatible distributed processing platform and objects executed as processes on the computer.
Another advantageous characteristic would be that the communication network (or networks) itself is capable of transmitting a wide range of services. There are network technologies which are capable of supporting multiple service delivery and some examples of these are based on the asynchronous transfer mode (ATM) and synchronous digital hierarchy (SDH) technologies. A common feature of such networks is that they can use a range of transmission rates flexibly, choosing that most appropriate for the service being delivered.
Future service retailing might be offered across an architecture of the telecommunication information networking architecture type. This brings together elements of the multi-service network and DPE technologies mentioned. An example of such an architecture is that being defined by the TINA Consortium. Reference might be made to xe2x80x9cTelecommunications Information Networking Architecturexe2x80x9d, Oshisanwo A., Boyd T., Proc. 4th IEEE Conf. Telecommunications, IEEE, London 1993.